Rでxlsxファイルの読み込み(JAVAを使わない)

R Advent Calendar2014@Qiita の2日目でJavaに依存せずにxlsxを読む という記事を見つけたので,忘れないように自分でもメモ.

openxlsxパッケージを使えばJAVAに依存しないでxlsxファイルを読み込むことが出来る. その代わり,xlsファイルには非対応.

library(openxlsx)

xlsxファイル例

test.xlsxというファイルの3枚のシートに下記内容のデータが保存されているとする.

  • 1枚目のシートは1つの表がある
  • 2枚目のシートはシート名前がH26であり,変数名が日本語
  • 3枚目のシートは複数の表がある

sheet1 sheet1 sheet1

read.xlsx()関数の使い方

read.xlsx()関数でエクセルのxlsxファイルをRで読み込むことができる. 基本はread.xlsx("[ファイル名]",sheet=[シート番号])でxlsxファイルの名前とシート番号を指定する.

read.xlsx("test.xlsx",sheet=1)
##   X Y
## 1 1 1
## 2 2 4
## 3 3 9

sheetはシート番号の代わりにシート名で指定することもできる.

read.xlsx("test.xlsx",sheet="Sheet1")
##   X Y
## 1 1 1
## 2 2 4
## 3 3 9

日本語が変数名でも文字化けしないみたい.

read.xlsx("test.xlsx",sheet="H26")
##   年度 人口
## 1 2014   10
## 2 2013    5

1枚のシートの中に複数の表がある場合は,全て読み込まれてしまう.

read.xlsx("test.xlsx",sheet=3)
##   X Y    Z
## 1 1 1    A
## 2 2 2    B
## 3 Z W <NA>
## 4 1 1 <NA>
## 5 2 2 <NA>

したがって,データフレームの列番号を指定するなどする必要がある.

read.xlsx("test.xlsx",sheet=3)[1:2,]
##   X Y Z
## 1 1 1 A
## 2 2 2 B